home *** CD-ROM | disk | FTP | other *** search
- z26 -- An Atari 2600 Emulator (2.13) -- May 23, 2004
- Home Page: http://www.whimsey.com/z26 -- Contact: z26@whimsey.com
-
- Copyright/License
- z26 is Copyright 1997-2004 by John Saeger and is a derived work with
- many contributors. z26 is released subject to the terms and conditions
- of the GNU General Public License Version 2 (GPL). z26 comes with no
- warranty. Please see the included COPYING.TXT for details. Source code
- for the current release is available at the home page listed above.
-
- What's new in version 2.13?
- * Converted MASM assembly code to NASM syntax, preparatory to the...
-
- * ...Linux port! z26 can now be compiled for Windows, Linux, or just
- about any other x86 environment that supports a UNIX-like build
- environment with GCC. The Linux support is solid; preliminary
- testing has been done on FreeBSD and BeOS. There are a few
- Linux-specific command-line options, see below. A Linux static
- binary is available for those who don't wish to compile z26 from
- source.
-
- * Improved documentation. We now have a PDF manual and a man page for
- Linux.
-
- * Added ability to selectively disable graphical objects. This
- feature is mostly intended for developers.
-
- * We now lock the audio device before filling the sound queue. This
- should prevent the long startup times that were plaguing some
- Windows users. It also should allow z26 to run correctly on
- multi-processor machines.
-
- * Also we made the INTIM timer random at the emulator start again.
- Berzerk should start with a different screen each time you play it
- now.
-
- * Other than the audio device locking and the random INTIM timer,
- version 2.13 for Windows should behave identically to version 2.12.
- If this isn't the case, please let us know.
-
- * Thanks to Brian Watson, Eckhard Stolberg, and James Wilkinson for
- help with this version!
-
- Introduction
- This version of z26 is designed to run natively on 32-bit x86 Windows
- platforms. It provides excellent sound quality, and correct frame
- synchronization on Windows-XP platforms.
-
- System Requirements
- Windows
-
- Operating System -- z26 will run on 32-bit x86 Windows platforms
- starting with Windows 95, but best results are obtained with Windows 98
- or later. For the NT based operating systems, XP or later is
- recommended. There are sometimes problems with Win2K.
-
- Direct-X -- For best results, get the latest and greatest. In particular
- you may want to be able to run DXDIAG.EXE to adjust the frame rate. This
- is not supported in older versions of Direct-X.
-
- SDL -- You will need a copy of SDL.DLL either in the directory that you
- place z26, or in the Windows directory. This .DLL is included in the
- .zip file along with the z26 executable.
-
- Processor -- If you have a good quality video card of fairly recent
- vintage, a Pentium-166 with MMX or a K6-166 is sufficient to run
- everything we've tried at full speed in a full-screen video mode. It
- takes more horsepower to run games in a windowed video mode.
-
- Video Card -- Some old video cards, like the S3 Trio or the S3 Virge are
- not as good at page-flipping as more recent video cards. A faster
- processor can help to make up for the deficiency, but a video card that
- was designed with Direct-X in mind is desireable.
-
- Sound Card -- Even an old Soundblaster 16 works great. The majority of
- sound cards that have Direct-X support work fine. Occasional problems
- have been reported with some less popular sound cards like the Lynx One.
-
- Linux
-
- Distribution -- z26 is designed to be distribution-neutral. The static
- binary release doesn't depend on any particular libraries being
- installed on your system. It has been tested on at least: Slackware 8.0
- and 8.1, Mandrake 9.2, Red Hat 9.0, and Knoppix 3.4. You should also be
- able to build from source on any distribution, provided you have GCC
- (tested with versions 2.95.3, 3.2, and 3.3.1), NASM (at least version
- 0.98.33), and SDL (tested with versions 1.2.3 and 1.2.7).
-
- Linux kernel -- A 2.6 kernel is recommended, but not required. If you
- want to use the -T4 (/dev/rtc) accurate timing option, you will need
- either 2.6 or else 2.4.19 or newer (actually, 2.4.18 and earlier would
- work, but you'd have to run z26 as root, which is a *Bad Idea*).
-
- Video Driver -- Most people will use X11 (XFree86). z26 has also been
- tested with the Linux fbcon driver. Any display device supported by SDL
- should be usable, though some may be faster than others. For X11, the
- XVideo extension is highly recommended. If you experience poor
- performance in full-screen modes, you will definitely want to enable
- XVideo or DGA 2.0, if your video card supports them.
-
- SDL -- The static binary is linked with SDL 1.2.7, and does not (can
- not) use any SDL shared libraries installed on your system. If you are
- building from source, you will need the SDL headers and sdl-config
- program (most distributions provide this in a package called sdl-dev or
- sdl-devel).
-
- Processor -- If your video card is well-supported under X (or whatever
- display device SDL is using), you shouldn't need a very fast processor.
- The slowest machine we've tested is a Celeron/366, which is capable of
- running z26 at full speed in windowed and fullscreen modes with either
- -T3 or -T4 timing. Depending on your configuration, full-screen modes
- may be faster or slower than windowed modes (this is different from the
- Windows version).
-
- Video Card -- See `Video Driver'. Basically, anything made in the past 5
- years should be usable to at least some degree.
-
- Sound Card -- Anything supported by the Linux kernel should be OK,
- however there are issues with certain OSS drivers. If you get no sound,
- or very quiet sound, you should try ALSA instead (comes with 2.6
- kernels, available for 2.4 kernels in most modern distributions). If all
- else fails, try the -S option: it should make the sound louder, but may
- cause distortion (or may not, depends on your driver).
-
- Other OS
-
- z26 should build on any OS that runs on the x86 platform and has SDL
- available.
-
- Under FreeBSD (tested on version 4.9), you can use devel/sdl11,
- devel/sdl_ldbad, and devel/nasm from the Ports collection, if you want
- to build a native FreeBSD binary. You could also try to use FreeBSD's
- Linux binary emulation to run the static Linux binary (I haven't tried
- this. If you do, let me know if it works or not).
-
- The requirements for other x86 operating systems should be similar to
- the Linux requirements. Basically, SDL handles the sound and video
- issues, so if other SDL apps work on your OS, z26 should, too. If the
- framerate is too fast/slow, try the -T3 timing option.
-
- Since large portions of z26 are written in x86 assembly, you won't be
- able to compile it for non-x86 platforms. Unfortunately, this means no
- MacOS/OSX (or Sparc/Solaris, or SGI IRIX, or RS/6000...) port for now.
- We will be rewriting the assembly code in C over the next few releases,
- so at some point z26 will become truly cross-platform.
-
- Installation
- Windows
-
- Unzip the z26 executable into the directory that contains the ROM images
- that you want to run. If you are uncomfortable using the command line
- prompt, you should create a shortcut to z26.exe on your desktop. This
- way you can drag and drop ROM images to the z26 shortcut to run them.
-
- You may also want to run DXDIAG.EXE to force Direct-X to run games at
- 60fps and set up monitor synchronization by using the -r command line
- switch. This way subtle graphics effects used by many Atari games will
- be emulated properly if you're running in a full-screen video mode.
-
- Linux
-
- ***NOTE: Linux binaries are not yet provided
-
- Binary installation - Extract the .tar.gz archive and run the install.sh
- script. This will copy the executable and man page to */usr/local/bin*
- and */usr/local/man/man1*, respectively.
-
- Building from source - To build and install the dynamic executable and
- man page (most people will want this, and root access is generally
- required):
-
- make linux
- make install
-
- To build a dynamically-linked executable, but not install it in
- */usr/local/bin*, use the command:
-
- make linux
-
- To build a statically-linked executable:
-
- make linux-static
-
- To build the text, manpage, and PDF versions of the manual:
-
- make docs
-
- If you're using a desktop environment such as KDE or Gnome, you might
- want to copy the z26_icon.png to your icons directory and set it as the
- icon for the z26 executable.
-
- Startup
- If you have created a shortcut to z26 on your desktop, just drag and
- drop a ROM image from the Windows explorer *or equivalent, on Linux*
- onto the shortcut. The game will then run. Otherwise you can run z26
- from the command line prompt. Type
-
- z26 filename
-
- where filename is the name of a "standard" Atari 2600 .bin file. For
- example:
-
- z26 demonatk.bin
-
- will run Demon Attack. If you don't include the .bin extension, z26 will
- automatically append one for you. So you can also type:
-
- z26 demonatk
-
- to run Demon Attack.
-
- You may also include a variety of command line switches to modify the
- behavior of z26. These are described later.
-
- Running z26
- Once you are running a game, the keyboard controls things as follows.
- You may find more information about these things later in the document.
-
- Console Controls
-
- F1 -- Reset
- F2 -- Select
- F3 -- B/W
- F4 -- Color
- F5 -- P0 easy
- F6 -- P0 hard
- F7 -- P1 easy
- F8 -- P1 hard
-
- Paddles
-
- Ctrl -- fire paddle 0 Use left and right arrows to move
- RShift -- fire paddle 1 Use up and down arrows to move
- n -- fire paddle 2 Use 's' and 'f' to move
- v -- fire paddle 3 Use 'e' and 'd' to move
-
- Player 0 Joystick
-
- Ctrl -- fire Use the arrow keys to move.
- / -- trigger (booster grip)
- RShift -- booster (booster grip)
-
- The mouse may also be used to control the Player 0 joystick.
-
- Player 1 Joystick
-
- n -- fire
- s -- left
- e -- up
- f -- right
- d -- down
- b -- trigger (booster grip)
- v -- booster (booster grip)
-
- Player 0 Driving Controller
-
- Ctrl -- accelerate
- right arrow -- turn clockwise
- left arrow -- turn counter-clockwise
-
- Player 1 Driving Controller
-
- n -- accelerate
- f -- turn clockwise
- s -- turn counter-clockwise
-
- Keyboard Controllers
-
- Left Port Right Port
-
- 7 -- 1 8 -- 2 9 -- 3 1 -- 1 2 -- 2 3 -- 3
- u -- 4 i -- 5 o -- 6 q -- 4 w -- 5 e -- 6
- j -- 7 k -- 8 l -- 9 a -- 7 s -- 8 d -- 9
- m -- * , -- 0 . -- # z -- * x -- 0 c -- #
-
- Compumate Keyboard
-
- Use PC keyboard columns 1 - 0
- Ctrl -- FUNC
- LShift -- SHIFT
-
- Mindlink Controller
-
- Use the mouse to move horizontally.
-
- button -- start the game
- Tab -- switch between player 0 and player 1
-
- Mouse Handling in Paddle emulation
-
- Tab -- switch between horiz. normal, vert. normal
- and horiz. reversed, and vert reversed
-
- Kid Vid Controller
-
- Use keys 1 2 3 to start the corresponding tape.
- F1 stops and rewinds the tape.
-
- Trak-Ball Controllers
-
- The PC-mouse works just like the Atari Trak-Ball in Trak-Ball mode.
-
- Pausing a Game
-
- Backspace -- pause
- Enter -- resume
-
- Video Modes
-
- Alt-0 -- Mode 0
- Alt-1 -- Mode 1
- Alt-2 -- Mode 2
- Alt-3 -- Mode 3
- Alt-4 -- Mode 4
- Alt-5 -- Mode 5
- Alt-6 -- Mode 6
- Alt-7 -- Mode 7
- Alt-8 -- Mode 8
-
- Alt-Enter -- switch between full-screen and windowed video modes
-
- Scrolling the Screen
-
- PgUp -- scroll the screen up
- PgDn -- scroll the screen down
- Home -- return to the default screen position
-
- Screen Capture
-
- = -- capture screen to PCX file
-
- Trace Mode
-
- F11 -- resume tracing
- F12 -- pause tracing
-
- Palette Change
-
- - -- switch between NTSC -> PAL -> SECAM palettes
-
- Configuring z26
- z26 has many options that are set with command line switches. You can
- use a text editor like Notepad to create a file called z26.cli in the
- directory that contains your ROM images to set these options. Otherwise
- if you type z26 with some command line switches and don't include a
- filename, the command line switches are recorded in z26.cli
- automatically as emulator defaults. These defaults can still be
- overridden with command line switches that you include on command lines
- that include a filename.
-
- Note that spaces are not allowed between an option and its argument.
- Example: to force the framerate to 60, use -r60, not -r 60.
-
- Command Line Switch Summary
- More detailed information about the meaning of the switches may be found
- later in the document.
-
- -)CC -- select controller on left port
- CC = JS -- joystick
- CC = PC -- paddle controller
- CC = KP -- keypad
- CC = DC -- driving controller
- CC = LG -- lightgun
- CC = CM -- CompuMate keyboard
- CC = KV -- Kid Vid tape player
- CC = ML -- Mindlink controller
- CC = ST -- ST mouse / CX-80 Trak-Ball
- CC = TB -- CX-22 Trak-Ball
- CC = AM -- Amiga mouse
- CC = NC -- no controller connnected
-
- -(CC -- select controller on right port (CC: see above)
-
- -! -- run interlaced games
-
- -0 -- start with player 0 hard
-
- -1 -- start with player 1 hard
-
- -4 -- allow all 4 directions on the joystick to be pressed
- simultaneously
-
- -b -- start in black and white
-
- -B -- enable screen captures to .bmp files. Works with
- phosphorescent games.
-
- -cN -- color palette (N=0 -- NTSC N=1 -- PAL N=2 -- SECAM)
-
- -dN -- DSP processing level (N=1 -- low N=2 -- high)
-
- -eN -- enable narrow video modes (N=1 or N=2)
-
- -fN -- enable phosphorescent effect (N=0 through N=100,
- 77=default) The parameter is the frame mixing
- coefficient (0 through 100) which specifies how much
- the bright pixel is favored over the dim pixel when
- mixing the value of two frames. The default is 77. If
- you specify a value greater than 100 or less than zero,
- the effect is disabled for games that are automatically
- recognized as needing this effect, like Yars Revenge.
- If N<0 or N>100 the effect is disabled for games that
- are automatically recognized as needing this effect like
- Yars Revenge.
-
- -gN -- override game type
- N=1 -- Commavid extra RAM
- N=2 -- 8K Superchip
- N=3 -- 8K Parker Brothers
- N=4 -- 8K Tigervision
- N=5 -- 8K Decathlon & Robot Tank
- N=6 -- 16K Superchip
- N=7 -- 16K M-Network
- N=8 -- 32K Superchip
- N=9 -- 8K Atari -- banks swapped
- N=10 -- Spectravideo Compumate
- N=11 -- 32K - 512K Extended Tigervision
- N=12 -- 8K UA Ltd.
- N=13 -- 64K Homestar Runner / Paul Slocum
-
- -hN -- set the maximum number of scanlines to render (height)
-
- -iC -- [changed] inactivate PC-controller
- (C = K -- keyboard, M -- mouse, J -- joystick,
- S -- Stelladaptor)
-
- -jN -- [removed]
-
- -kN -- [removed]
-
- -pN -- paddle sensitivity (N=1 to 15 -- keyboard only)
-
- -PN -- enable lower sesitivity for PC joysticks / Stelladaptor
- in paddle emulation, and delay the paddle read-bit
- flipping by N scanlines
-
- -mN -- paddle to emulate with mouse (N=0 to 3)
-
- -m1XY -- emulate two paddles with mouse (X and Y = 0 to 3)
-
- -MN -- enable mouse capture in a window -- allows mouse full
- control of games in windowed video modes just like full
- screen modes (N=0 -- off, N=1 -- on) default = on
-
- -G -- Grab all mouse and keyboard events. Use this if your window
- manager's hotkeys conflict with z26 hotkeys. This option
- is primarily intended for Linux/UNIX systems, but may be
- useful on Windows as well.
-
- -lN -- [changed] adjust lightgun by N cycles
-
- -aN -- adjust lightgun emulation by N scanlines
-
- -n -- show scanline count and FPS on game display
-
- -o -- simulate PAL color loss
-
- -q -- quiet
-
- -sN -- specifies the size of the sound queue
- (default = 4608 -- max = 65536)
-
- -r -- Windows: run at monitor speed
- Linux: This option doesn't work, and is disabled.
-
- -rN -- run at N frames per second. Give a large number
- (e.g. -r10000) to run the emulator as fast as possible.
- This option does work on Linux.
-
- -R -- Windows: synchronize with sound instead of display
- Linux: This option doesn't yet work correctly,
- and is disabled.
-
- -t -- write code trace to z26.log. Warning: These log files
- get ENORMOUSLY large. Try not to run out of disk space.
-
- -tt -- Same as -t, but start emulator with tracing disabled.
- Press F11 to enable trace while emulator is running,
- or F12 to disable.
-
- -uN -- start scanning game at line N
-
- -vN -- start game in video mode N full screen
-
- -v1N -- start game in video mode N in a window
-
- -w -- [changed] swap Atari controller ports for all
- controller types
-
- -x -- print checksum of cartridge
-
- -yN -- [removed]
-
- -z -- disable the fast copy routines
-
- Linux (and others) options
-
- -S -- OSS Sound hack.
-
- -TN -- Select timing mode for frame sync
- N=1 -- Use SDL for timing. Runs too slow on
- Linux 2.4 kernels, too fast on Linux 2.6.
- N=2 -- Use UNIX select() call for timing. More
- accurate than SDL, but may oscillate between
- too slow and too fast on slower systems.
- N=3 -- Use `CPU Hog' timing. z26 will busy-wait in
- a loop polling the system clock until it's
- time to start the next frame. This is very
- accurate, but not very friendly to other
- processes on your system.
- N=4 -- Use /dev/rtc timing (Linux only). This is the
- most accurate timing mode available, but
- requires you to configure your RTC driver to
- allow z26 to set the correct clock frequency.
- As root, run the command:
-
- echo "8192" > /proc/sys/dev/rtc/max-user-freq
-
- You should add this command to your rc.local
- script (or equivalent).
-
- Atari Controller Support
- Joystick
-
- PC or USB joysticks and gamepads are supported to the extent that
- Direct-X and SDL supports them for playing joystick games. The mouse and
- PC keyboard may also be used. Some games like raiders.bin use the
- "wrong" joystick. To reverse the joysticks use the -w command line
- switch.
-
- Trak-Ball
-
- Atari sold a Trak-Ball that could be used to play joystick games. z26
- supports the use of a mouse or PC trakball to do the same thing for
- joystick games. If you have a mouse or PC trackball, support is
- automatic. Optical trackballs like the Logitech Marble Mouse are great
- for this. Also z26 now emulates the various types of Atari Trak-Balls in
- their native modes. This is done with the PC mouse as well.
-
- Paddles
-
- z26 supports the use of the mouse or PC trackball to play paddle games.
- If you want to change which paddle is emulated with the mouse use the
- -mN command line switch. You can change which direction the mouse must
- be moved in to get paddle motion by pressing the <Tab> key on the
- keyboard while you're playing a game. You can emulate two paddles with a
- mouse with one paddle on each axis. Use the -m1xy command line switch
- where x and y are the paddle numbers to emulate on that axis. You can
- use the keyboard to play paddle games. If z26 doesn't automatically
- support a game as a paddle game you must specify the -)PC or -(PC
- command line switches to get paddle support on the left or right Atari
- port.
-
- Light Gun
-
- z26 supports light gun games (Sentinel, Shooting Gallery) with the
- mouse.
-
- Keyboard Controllers
-
- z26 enables the keyboard/touch pad/keypad for recognized games that use
- them.
-
- Driving Controllers
-
- z26 suppports the game that uses the driving controller (Indy 500) from
- the keyboard.
-
- Booster Grip
-
- z26 supports the booster grip game (Omega Race) from the keyboard and
- the PC joystick with 3 or more buttons.
-
- Kid Vid Tapes
-
- z26 supports the Kid Vid games (Smurfs Save the Day and Berenstain
- Bears) automatically. Press 1, 2, or 3 to select the corresponding tape.
- F1 rewinds the tape. In addition to the rom images, you need the wave
- files with the music in the same directory as z26. The files are named:
-
- Berenstain Bears:
-
- KVB1.WAV, KVB2.WAV, KVB3.WAV
-
- Smurfs Save the Day:
-
- KVS1.WAV, KVS2.WAV, KVS3.WAV
-
- Both:
-
- KVSHARED.WAV
-
- You can also play the games without the music, but it's much less fun.
-
- Stelladaptor support
- z26 assumes that a PC joystick with only two buttons and two axis is the
- Stelladaptor device, that lets you connect Atari joysticks, driving
- controllers and paddles to your PC's USB port. If you want to use a
- different 2-button/2-axis joystick with z26 and experience problems with
- the emulation of some Atari controller, you can disable the Stelladaptor
- support with the -iS command line switch. Please note that the
- Stelladaptor is seen as a joystick too, so disabling joysticks with the
- -iJ switch will also disable the Stelladaptor.
-
- Inactivating PC controller support
- Some Atari controllers are simulated with more than one PC controller.
- If you are experiencing problems with this, you can disable one or more
- PC controllers for these Atari controller simulations. For example you
- might want to disable the PC mouse when you use the keyboard to play an
- Atari-joystick game, so that accidently pushing the mouse doesn't cause
- any unwanted movement. Also you might want to disable the PC joystick
- for paddle games, because the PC joystick always overrides all other PC
- controllers in the paddle simulation when one is plugged into the PC.
- Please look at the following table to find out which Atari controllers
- are simulated with which PC controller.
-
- Atari/PC keyboard mouse joystick Stelladaptor
- ----------------------------------------------------------
- joystick JS x x x x
- paddle PC x x x x
- keypad KP x - - -
- driving DC x x x x
- lightgun LG - x - -
- Compumate CM x - - -
- Kid Vid KV x - - -
- Mindlink ML - x - -
- ST mouse ST - x - -
- Trak-Ball TB - x - -
- Amiga mouse AM - x - -
-
- Please note that inactivating the PC controller only works for Atari
- controllers that are simulated by more than one PC controller. Also note
- that the Stelladaptor is just a special case of the PC joystick. So
- inactivating joystick support will also disable Stelladaptor support.
-
- Video Modes
- Note that by adding 10 to the video mode number z26 will run in a
- windowed mode. Otherwise z26 runs full-screen. On some systems, windowed
- modes are very slow. So for maximum performance you should run
- full-screen. Adding 20 to the video mode number causes the game to run
- full-screen with the number of bits per pixel as your current desktop.
- This allows the phosphorescent effect to work in full-screen video
- modes.
-
- Mode 0 -- 400x300 (default)
-
- Mode 1 -- 320x240
-
- Mode 2 -- 320x200
-
- Mode 3 -- 800x600 scanline/interlaced
-
- Mode 4 -- 640x480 scanline/interlaced
-
- Mode 5 -- 640x400 scanline/interlaced
-
- Mode 6 -- 800x600 double scanline
-
- Mode 7 -- 640x480 double scanline
-
- Mode 8 -- 640x400 double scanline
-
- Modes 3-5 simulate the TV scanline effect when the -! command line
- switch is not specified. If the -! command line switch is specified,
- they run games interlaced by updating every other scanline every other
- frame. They also play the interlaced demos like cube_imp.bin correctly.
-
- Modes 6-8 appear similar to modes 0-2 except that they are larger.
-
- Switching Video Modes on the Fly
- You may change video modes while playing a game by pressing one of the
- number keys on the keyboard (not the keypad). Pressing <Alt-0> through
- <Alt-8> is supported. Pressing <Alt-Enter> will switch between windowed
- and full-screen modes.
-
- Adjusting Vertical Position
- You can scroll games up and down on the display with the <PgUp> and
- <PgDn> keys. You can return to the default display position by pressing
- the <Home> key. You can force the game to start displaying from a
- particular scan line from the command line with the -uN command line
- option. You can set the maximum number of scanlines to render with the
- -hN command line switch.
-
- Note that the <PgUp> and <PgDn> scrolling doesn't work for traffic.bin
- or pharhcrs.bin.
-
- Forcing Black and White mode
- You can force a game to start in black and white mode with the -b
- command line switch. Note that this doesn't mean that the game will
- actually be in black and white, this is up to the game itself to
- support.
-
- Colors
- z26 supports three different sets of colors. The most common games
- shipped in North America use the so called NTSC colors. Games shipped in
- other parts of the world use the so called PAL colors. z26 typically
- detects the correct colors to use based on which scan line a game starts
- displaying at. If the display starts at scan line 54 or higher, z26 uses
- PAL colors, otherwise NTSC colors are used. There are some exceptions,
- but I'm not an expert on which games are PAL and which ones are NTSC so
- you can override the colors chosen by z26 with the -cN command line
- switch. -c0 forces NTSC, and -c1 forces PAL. Feel free to let me know if
- you find a game that z26 picks the wrong colors for.
-
- z26 also supports the bug in PAL consoles that causes the display to
- display a monochrome image if a game has the wrong number of scanlines.
- This feature is enabled with the -o command line switch. Some of the
- 32-in-1 games which were poorly done PAL hacks show this effect.
-
- SECAM colors can be selected with -c2. In the time before the crash
- Atari created most of it's PAL games in such a way that the B/W switch
- would enable SECAM compatible colors. So nostalgic gamers from France
- can play PAL ROMs with -b and -c2 command line options enabled.
-
- Adjusting Game Speed
- By default, games run at a speed that is determined by how many
- scanlines the game generates per frame. This provides correct play speed
- for NTSC and PAL games automatically. If you want to synchronize games
- with the monitor so that games like Yars Revenge play with a minimum of
- visual artifacts use the -r command line switch. You may want to run
- DXDIAG.EXE to force Direct-X to run video modes at 60fps which is the
- normal speed for NTSC games. Note that monitor synchronization only
- works in full screen modes. Windowed modes fall back to the normal
- synchronization method.
-
- You may also specify a parameter to the -r command line switch to choose
- a non-standard play speed. This works both in windowed and full screen
- modes.
-
- Measuring Emulator Performance
- The -n command line switch causes the number of frames per second to be
- displayed during game play. If you choose the -r command line switch
- with a large number the emulator will run at full speed.
-
- Digital Signal Processing
- z26 supports digital signal processing (DSP) on the sound. This is to
- reduce distortion on some clone sound cards, but also causes the sound
- to more closely approximate the sound of an old TV set for those users
- that prefer a more "classic" sound. To turn on DSP use the -dN command
- line switch. If n=1 the setting is low, if n=2 the setting is high.
-
- Fixing certain Linux sound problems
- With certain sound hardware and drivers, the sound is missing or very
- quiet on the Linux platform.
-
- This can usually be corrected by using the ALSA sound drivers instead of
- the deprecated (but still very common) OSS drivers. If that doesn't
- help, the -S option might.
-
- This option increases the sound volume, but may cause distortion. Use it
- as a last resort. In future versions of z26, this option will change or
- go away entirely.
-
- Offbeat Cartridge Formats (Bank Switching)
- z26 currently supports the following schemes:
-
- 1. Standard 8K bank switching.
-
- 2. Standard 16K bank switching.
-
- 3. Atari Super-Chip.
-
- 4. CBS Ram Plus.
-
- 5. Parker Brothers 8K.
-
- 6. TigerVision 8K.
-
- 7. Activision FE 8K.
-
- 8. Atari 32K.
-
- 9. M-Network 16K.
-
- 10. Pitfall II.
-
- 11. Starpath.
-
- 12. Megaboy.
-
- 13. Compumate.
-
- 14. Extended TigerVision (to 512K).
-
- 15. UA Ltd. 8K.
-
- 16. 'EF' 64K (used by Paul Slocum's Homestar Runner RPG.
-
- Support is automatic. z26 knows how to recognize cartridges. To override
- the default selection you may use the -gN command line switch.
-
- For most Starpath games, the .bin file must be a multiple of 8448 bytes
- big. To run multiload games you must concatenate the .bin files. A
- command like this will do the trick:
-
- DOS:
-
- copy /b load1.bin+load2.bin+load3.bin+load4.bin mload.bin
-
- UNIX:
-
- cat load1.bin load2.bin load3.bin load4.bin > mload.bin
-
- Then run mload.bin in the emulator. z26 supports a maximum of 61 loads.
-
- z26 also supports the 6144 byte Starpath format.
-
- The Extended Tigervision (-g11) bankswitch scheme allows ROMs up to 512K
- in size keeping the last bank fixed. All ROM images that are bigger than
- 64K and not a multiple of 8448 default to this scheme.
-
- The original Tigervision (-g4) bankswitch scheme also supports up to
- 512K games but with $1800-$1FFF as the fixed bank. This allows
- compatibility with the Cuttle Cart for games up to 64K in size.
-
- PCX Screen Capture
- Pressing the = key during game play causes a .pcx file with a screen
- image to be placed in your directory. Filenames are z26p0000.pcx,
- z26p0001.pcx etc. The filename restarts at z26p0000.pcx causing old
- versions to be replaced each time you restart the emulator.
-
- Features for Game Developers
- z26 supports some features to help game developers with their projects.
- Trace mode, and the ability to count scanlines.
-
- Also, z26 allows game developers to disable individual graphics objects.
- Remember, this is a feature for game developers, not for dirty cheaters
- :)
-
- Trace Mode
- If you start z26 from the command line with the -t command line switch,
- it automatically builds a text file called z26.log. This file is a log
- of all instructions executed and shows some other interesting things
- like the (frame number, scanline number, cpu cycle, tia clock), object
- positions (P0, P1, M0, M1, BL), cpu flags, registers (A, X, Y, SP), the
- program counter, the current instruction in hex, and a disassembled
- listing of the instruction.
-
- Emulator performance slows down quite a bit while writing out this file
- so you can turn off writing with F12 and turn it back on with F11 to
- make it easier to get to the part of the game that you're interested in.
-
- Counting Scan Lines
- Choosing the -n command line switch causes the number of scan lines that
- a game is using to be displayed. This is useful for testing PAL games so
- you can avoid the PAL color loss bug. Of course you can also enable the
- color loss by using the -o command line switch described above under
- Colors.
-
- Disabling Graphics
- While the emulator is running, use the following keys:
-
- Alt+key Effect
- Z Enable/disable player 0
- X Enable/disable player 1
- C Enable/disable missile 0
- V Enable/disable missile 0
- B Enable/disable ball
- N Enable/disable playfield
- / Enable all of the above (returns to default)
-
- There is currently no way to disable individual playfield registers
- (PF0, PF1, PF2). Alt-N affects all 3 registers.
-
- This feature can be useful for testing a game you're writing, or for
- analyzing a game someone else wrote. While a register is disabled, it's
- invisible and unable to collide with other objects. This means you can
- use it to cheat, too... but you wouldn't do that, would you?
-
- Troubleshooting
- Problem: z26 runs too slowly
-
- Solutions:
-
- - Try a different video mode
-
- Warranty
- BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
- THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
- OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
- PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
- EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
- ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
- YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
- NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
- WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
- REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR
- DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
- DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM
- (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
- INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
- THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR
- OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
- Tools
- The Windows version of z26 is built with MinGW/Msys, with GCC and NASM.
-
- The Linux static binary version of z26 is built with Slackware 8.1.
-
- The documentation that you're reading now was generated from POD source,
- using either pod2pdf (slightly modified), pod2text, or pod2man,
- depending which format you're looking at. All of these are written in
- Perl.
-
- Fonts were designed with CSEDIT by Matt Pritchard.
-
- Credits
- Eckhard Stolberg has made contributions to z26 that are almost too
- numerous to count. He has been involved since the very early days and
- the high quality emulation that z26 provides would certainly not have
- been possible without his participation.
-
- Paul Robson -- Wrote original A26.
- Ron Fries -- Original TIA sound emulation.
- Ettore Perazzoli -- Helped with 6502 undocumented instructions.
- Andreas Boose -- Also helped with 6502 undocumented
- instructions.
- Wolfgang Lorentz -- 6502 diagnostics.
- Bob Colbert -- Helped with object wrapping.
- Piero Cavina -- Helped with multiple missiles.
- Erik Mooney -- Helped with HMOVE blanks.
- Kevin Horton -- Helped with bankswitching and
- Quadrun voice.
- Dan Boris -- Atari 2600 schematics.
- Matt Pritchard -- Font design tools.
- Matt Conte -- Helped with Quadrun voice.
- John Dullea -- Fast elegant graphics and helped with
- Pitfall II.
- Bradford Mott -- Helped with object positioning
- (weird HMOVE).
- Chris Wilkson -- Helped with Pitfall II.
- Lee Krueger -- Helped with Kid Vid support, rare carts,
- and documentation.
- Thomas Jentzsch -- Helped with trace mode, Kid Vid support
- and some fast video routines.
- Henning Mueller -- Helped with CompuMate.
- Christian Bogey -- Helped with SECAM colors.
- Oliver Achten -- Helped with PAL colors.
- Andrew Davie -- Provided Extended Tigervision bankswitch
- demos.
- Paul Slocum -- Provided EF bankswitch demo.
- Billy Eno -- Provided interleaved display demo.
- Adam Wozniac -- Helped with TIA sound polynomials.
- Matt Matthews -- Linux consulting.
- Brian Watson -- Helped with Linux port, ASM-code and
- documentation conversion.
- James Wilkinson -- Helped with BeOS port.
-
- Thanks to everyone else who has helped with comments, suggestions, bug
- reports, information, supplies and testing:
-
- Junky, Kevin White, The Boatwrights, Miguel Guzman Centeno, Peter, Jay
- C. Heil, Zoop, Rob Anderson, Zophar, Peter Vogels, Stephan, Xahji,
- Ricardo Martinez Garza, Stephano Camarri, Peter Betz, Piero Cavina
- (Oystron! Helped find multiple missile bug.), Nick S. Bensema, Erik
- Mooney, Glenn Saunders, Abraham Velazquez, Christian Schaefers (Z-Type),
- Freirias, Brian Deuel, Chris Platt, Israel Geron T., jose roberto
- rodrigues, Dan Meyer, Martin Schaefer, Ummagumma, Digitoxin, Michael
- Walden Jr. (The most elaborate suggestion list!), Gilamonster, Gerald
- Gorman, Francisco Athens, Lex Nesta, Ben, Gerald Gray, Jose Pedro, Tadd
- Underhill, Ejber Ozkan, Lord Mhath, Larry Scott, Brad Komgenick, Michael
- J. Mika, Ettore Perazzoli (VICE), Stephan Eder, Andreas Boose (VICE),
- David Gray, jimnav, Dr. Simone Zanella, Brad Thomas, Jeff Cockayne, Sam
- Miller, EmrldSword, justin martin, Justin Scott, Jason Berk, Luis
- Graterol, Ricardo Soto, Brian Smith, Sam Hard, Keith Merizalde, Nate
- Marigoni, Kurt Woloch, GreenImp, M. C. Silvius, Matthew Conte
- (Nofrendo), Jason Barisoff, Rick Vasquez, Marco Turconi, Kalik,
- Christopher Warren, Curt Vendel, Roberto Sidney Teixeira, raverpup,
- iCeFiRe, Chism, Sascha Reuter, Craig Tildesley, Michael Prentler, Cody
- B, Thom Rechak, Cam, Jason, Keith Weisshar, Robin Gravel, Thom Bone,
- Mrfriend, Edwin Helsloot, C J Biro, Michael Monson, Justin Rodriguez,
- Francesco Azzurri, Greg Bendokus, Bruce Clarke, John Dullea (PCAE), Tim
- Boston, Chris Ainsley, Ricardo Henrique Tabone, and Seth Kintigh.
-
- And thanks to Len Shikowitz for *complaining* well beyond the call of
- duty. Definitely "the most obstinate, yet sincere, tester." :)
-
- At some point I stopped keeping the list of everyone who have sent me
- suggestions up to date. I apologize for that. But thanks to the folks
- who have continued to send in suggestions, even though they didn't make
- the list.
-
- Thanks!!!
-
-